home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Ebooks / Thinking in C++ V2 / C17 / NewFind.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-25  |  1.5 KB  |  63 lines

  1. //: C17:NewFind.cpp
  2. // From Thinking in C++, 2nd Edition
  3. // Available at http://www.BruceEckel.com
  4. // (c) Bruce Eckel 1999
  5. // Copyright notice in Copyright.txt
  6. #include <string>
  7. #include <iostream>
  8. using namespace std;
  9.  
  10. // Make an uppercase copy of s:
  11. string upperCase(string& s) {
  12.   char* buf = new char[s.length()];
  13.   s.copy(buf, s.length());
  14.   for(int i = 0; i < s.length(); i++)
  15.     buf[i] = toupper(buf[i]);
  16.   string r(buf, s.length());
  17.   delete buf;
  18.   return r;
  19. }
  20.  
  21. // Make a lowercase copy of s:
  22. string lowerCase(string& s) {
  23.   char* buf = new char[s.length()];
  24.   s.copy(buf, s.length());
  25.   for(int i = 0; i < s.length(); i++)
  26.     buf[i] = tolower(buf[i]);
  27.   string r(buf, s.length());
  28.   delete buf;
  29.   return r;
  30. }
  31.  
  32. int main() {
  33.   string chooseOne("Eenie, meenie, miney, mo");
  34.   cout << chooseOne << endl;
  35.   cout << upperCase(chooseOne) << endl;
  36.   cout << lowerCase(chooseOne) << endl;
  37.   // Case sensitive search
  38.   int i = chooseOne.find("een");
  39.   while(i != string::npos) {
  40.     cout << i << endl;
  41.     i++;
  42.     i = chooseOne.find("een", i);
  43.   }
  44.   // Search lowercase:
  45.   string lcase = lowerCase(chooseOne);
  46.   cout << lcase << endl;
  47.   i = lcase.find("een");
  48.   while(i != lcase.npos) {
  49.     cout << i << endl;
  50.     i++;
  51.     i = lcase.find("een", i);
  52.   }
  53.   // Search uppercase:
  54.   string ucase = upperCase(chooseOne);
  55.   cout << ucase << endl;
  56.   i = ucase.find("EEN");
  57.   while(i != ucase.npos) {
  58.     cout << i << endl;
  59.     i++;
  60.     i = ucase.find("EEN", i);
  61.   }
  62. } ///:~
  63.